//提取出网页字符串中文字
export function extractTextFromHTML(htmlString) {  
    // 创建一个DOMParser实例  
    const parser = new DOMParser();  
    // 解析HTML字符串  
    const doc = parser.parseFromString(htmlString, 'text/html');  
    // 获取body元素，因为它通常包含我们想要的文本内容  
    const body = doc.body;  
      
    // 用于存储提取的文本  
    let textContent = '';  
      
    // 遍历body元素的所有子节点  
    for (let node of body.childNodes) {  
        // 如果节点是文本节点，则添加其内容到textContent  
        if (node.nodeType === Node.TEXT_NODE) {  
            textContent += node.nodeValue.trim();  
        } else if (node.nodeType === Node.ELEMENT_NODE) {  
            // 如果节点是元素节点，递归地提取其内部的文本  
            textContent += extractTextFromHTML(node.innerHTML);  
        }  
    }  
      
    // 返回提取的文本内容  
    return textContent;  
}
//数字加密
export function maskMiddleDigits(numberStr) {  
    // 确保传入的是字符串  
    if (typeof numberStr !== 'string') {  
        numberStr+="";
    }  
  
    // 使用正则表达式匹配中间部分的数字  
    // 这里假设我们要替换从第7个字符开始到倒数第4个字符之前的所有字符  
    // 如果数字字符串的长度小于10，则不进行替换  
    const maskedStr = numberStr.length >= 10 ?   
        numberStr.replace(/(\d{6})\d+(?=\d{4})/, (_, match) => match + '*******') :   
        numberStr;  
  
    return maskedStr;  
}  
//提取数组中的地址
export function formatAddress(addressParts) {  
    // 将地址部分使用'/'拼接  
    let formattedAddress = addressParts.join('/');  
    
    // 如果地址长度超过17，使用...替代超出部分  
    if (formattedAddress.length > 17) {  
      formattedAddress = formattedAddress.substring(0, 14) + '...';  
    }  
    
    return formattedAddress;  
  }  

//生成数组
export function getDatesAndWeekdaysForNextSixDays() {  
    const dates = [];  
    const currentDate = new Date();  
  
    for (let i = 0; i < 6; i++) {  
        // 获取当前日期的年、月、日  
        const year = currentDate.getFullYear();  
        const month = String(currentDate.getMonth() + 1).padStart(2, '0'); // 月份从0开始，所以加1，并用0填充到2位  
        const day = String(currentDate.getDate()).padStart(2, '0'); // 用0填充到2位  
  
        // 获取当前日期是星期几  
        const weekday = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'][currentDate.getDay()];  
  
        // 创建对象并添加到数组中  
        const currentDateObj = {  
            date: `${year}/${month}/${day}`,  
            weekday: weekday  
        };  
        dates.push(currentDateObj);  
  
        // 更新当前日期为下一天  
        currentDate.setDate(currentDate.getDate() + 1);  
    }  
  
    return dates;  
}  
//返回当前的时间
export function getCurrentDate() {  
    const currentDate = new Date();  
  
    // 获取当前日期的年、月、日  
    const year = currentDate.getFullYear();  
    const month = String(currentDate.getMonth() + 1).padStart(2, '0'); // 月份从0开始，所以加1，并用0填充到2位  
    const day = String(currentDate.getDate()).padStart(2, '0'); // 用0填充到2位  
  
    // 拼接日期字符串  
    const formattedDate = `${year}/${month}/${day}`;  
  
    return formattedDate;  
} 
//筛选数组
export function filterMorningOrAfternoon(array, timePeriod) {  
    const filteredArray = [];  
  
    for (let i = 0; i < array.length; i++) {  
        const endTime = array[i].endTime;  
        if (endTime) {  
            if (timePeriod === 'morning' && endTime <= '12:50') {  
                filteredArray.push(array[i]);  
            } else if (timePeriod === 'afternoon' && endTime > '12:50') {  
                filteredArray.push(array[i]);  
            }  
        }  
    }  
  
    return filteredArray;  
}  

//改变时间
export function subtractHalfHour(timeString) {  
    if(timeString==undefined) {
        return "";
    }
    // 将时间字符串解析为分钟  
    const [hours, minutes] = timeString.split(':').map(Number);  
    const totalMinutes = hours * 60 + minutes;  
      
    // 减去半小时（30分钟）  
    const newTotalMinutes = totalMinutes - 30;  
      
    // 计算新的小时和分钟  
    const newHours = Math.floor(newTotalMinutes / 60);  
    const newMinutes = newTotalMinutes % 60;  
      
    // 确保分钟是两位数  
    const formattedMinutes = newMinutes < 10 ? `0${newMinutes}` : newMinutes;  
      
    // 返回新的时间字符串  
    return `${newHours}:${formattedMinutes}`;  
}  